Customizable and low-latency interactive computer-aided translation

ABSTRACT

Methods and systems for computer-aided translation include receiving a document having one or more sentences to be translated; generating a suggestion pool of possible translations for each sentence in the document; providing a best suggestion from the suggestion pool to a user for a sentence being translated; updating the suggestion pool based on the user&#39;s input of a translation prefix; and providing an updated best suggestion from the updated suggestion pool to the user for the sentence being translated.

BACKGROUND

1. Technical Field

The present invention relates to computer-aided translation and, moreparticularly, to computer-aided translation that adapts to a user'stranslation selections.

2. Description of the Related Art

Fully machine-based translation is used to automatically generate atranslation. This may be useful for users who are not acquainted withthe language in question and who do not have the resources or time toemploy a skilled translator. However, machine translation (MT) providesunreliable translations due to the complexity of language. For example,a given sentence in a first language may have multiple differentmeanings and may therefore have multiple different translations in asecond language.

Computer-aided translation (CAT) attempts to find the best of bothworlds, with the speed of MT and the human judgment of a skilledtranslator. MT is used to generate suggested translations within adocument, and a human translator accepts or modifies the suggestions. Inthis way, whenever the MT suggestion is accurate, the translator isrelieved of the burden of replicating that work and translationproductivity may be increased.

However, translation suggestions provided by general MT systems areoften not helpful for CAT when dealing with specific domains, wherewords may have non-standard meanings or may be applied in a non-standardway. In such a scenario, the suggestions will be consistentlyinaccurate, saving little time for the translator. Furthermore, thelatency of MT may cause additional delays that limit translationproductivity.

SUMMARY

A method for computer-aided translation includes receiving a documentcomprising one or more sentences to be translated; generating asuggestion pool of possible translations for each sentence in thedocument using a processor; providing a best suggestion from thesuggestion pool to a user for a sentence being translated; updating thesuggestion pool based on the user's input of a translation prefix; andproviding an updated best suggestion from the updated suggestion pool tothe user for the sentence being translated.

A method for computer-aided translation includes receiving a documentcomprising one or more sentences to be translated; generating asuggestion pool of possible translations for each sentence in thedocument at a server device using a processor, based on general andcustomized translation models having in-domain translation data;transmitting the suggestion pool to a client device; providing a bestsuggestion from the suggestion pool to a user for a sentence beingtranslated; transmitting a request for additional possible translationsbased on the translation prefix if the prefix deviates from possibletranslations in the suggestion pool; updating the suggestion pool basedon the user's input of a translation prefix; and providing an updatedbest suggestion from the updated suggestion pool to the user for thesentence being translated.

A computer-aided translation system includes a processor configured togenerate a suggestion pool of possible translations for each sentence ina document that comprises one or more sentences to be translated; atranslation module configured to provide a best suggestion from thesuggestion pool to a user for a sentence being translated and to providean updated best suggestion from the updated suggestion pool to the userfor the sentence being translated after the receipt of a user'stranslation prefix input; and a pool update module configured to updatethe suggestion pool based on the user's input of a translation prefix.

These and other features and advantages will become apparent from thefollowing detailed description of illustrative embodiments thereof,which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

The disclosure will provide details in the following description ofpreferred embodiments with reference to the following figures wherein:

FIG. 1 is a block/flow diagram of a method for computer-aidedtranslation (CAT) in accordance with an embodiment of the presentinvention;

FIG. 2 is a block/flow diagram of a method for CAT in accordance with anembodiment of the present invention;

FIG. 3 is a diagram of a system for CAT in accordance with an embodimentof the present invention;

FIG. 4 is a block/flow diagram of a method for suggestion pool updatesin accordance with an embodiment of the present invention;

FIG. 5 is a diagram of a server/client system for CAT in accordance withan embodiment of the present invention; and

FIG. 6 is a diagram illustrating an exemplary translation user interfacein accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Embodiments of the present invention provide computer-aided translation(CAT) by providing real-time and interactive translation suggestionsthat rapidly adapt based on a translator's intentions and translationinputs. A translator is able to accept a partial translation prefix andbegin manually translating at any point in a sentence. The presentembodiments provide updated suggestions based on the manual inputs,allowing the translator to benefit from CAT even after an initialsuggestion is rejected. This increases both the speed and accuracy oftranslation suggestions in CAT. Furthermore, domain-specific data and/ordictionaries may be used to customize suggestions. It should berecognized that embodiments of the present invention may be appliedequally to computer aided transcription, where audio or videoinformation is reviewed by a human transcriber and with suggestionsgenerated by voice recognition software.

Referring now to the drawings in which like numerals represent the sameor similar elements and initially to FIG. 1, an overview of presentembodiments for CAT is shown. Block 102 builds an in-domain trainingdatabase. Such a database may be organized as parallel phrase pairs.Each phrase pair includes two sentences, one in the source language andthe other in the target language. In the case of translating ortranscribing spoken language, the information will include voicerecognition information in addition to linguistic content. Parallelphrase pairs are generally created by human translators, but they maycome from any suitable source.

Block 104 builds a customized translation model using the translationdatabase. This customized translation model provides a set of knowledgethat a computer can use to make inferences and decisions regardingpotential translations and may include both a translation model and anatural language model. The customized translation model is astatistical model that learns from the training database. Anyappropriate learning method may be employed including, e.g., word-based,phrase-based, tree-based, generative, discriminative, and heuristicmethods. This list is not intended to be exhaustive, and those havingordinary skill in the art will be capable of selecting an appropriatelearning model for a given application.

Block 106 receives an input document for translation. The input documentis in a first language and is to be translated to a second language. Thelanguage of the input document may, e.g., be identified explicitly by anoperator, be designated in the document itself, or be determinedautomatically by natural language recognition. It should be recognizedthat the document itself need not be a text document, but may alsoinclude audio or video information. For example, when coupled with avoice recognition system, CAT may be used to aid a translator intranscribing spoken language.

Block 108 forms a suggestion pool for translation. The suggestion poolis based on one or more customized translation models as well as generaltranslation models and may include, for example, a word lattice, a listof n-gram strings, a pre-fix tree, etc., and may be searchable by theclient-side of the CAT tool. A general translation model may be, forexample, a model that handles common phrases within the languages inquestion, while the customized translation model may provide specializedvocabulary and usage that is specific to a specific domain. Such ageneral model may include, for example, all the translation models,language models, reordering models, etc., that are used in statisticalmachine translation.

The domain, as well as the corresponding customized translation model,may be selected by the user or may be automatically determined by thesystem based on, for example, a frequency count of words or phraseswithin the document that is associated with a particular domain. Forexample, if the document includes many words or phrases relating toautomobiles, the CAT tool may suggest to the human translator acustomized translation model belonging to an automotive domain. Anynumber of customized models may be used, as a given document may belongto multiple domains. In one exemplary embodiment, the document itselfwill have explicit domain information provided by an entity submittingthe document for translation. The CAT tool may read this information andautomatically load whatever customized translation models are calledfor.

The general translation model and the customized translation model(s)may be combined according to any appropriate method. For example, thetwo models may be simply added to one another, with optional weightscontrolling how strongly contributions from each model are to beconsidered. Alternatively, a machine translation may be performed usingthe general model first, after which the customized model maybe used tore-rank translations, picking those which are most suitable for thetargeted domain(s). In a further embodiment, the CAT system need notcombine the two models at all. Each model may generate candidatetranslations that are added to the suggestion pool. The sets ofcandidate translations may be combined, with redundancies betweensimilar or identical translations removed. Translation confidence scoresmay be used as weights when building such a compact representation. Theresulting suggestion pool is made up of a set high-probabilitytranslations. As will be described in more detail below, this allows alocal translation tool to provide suggestions with low latency, asmodifications can be made to the suggestion pool without requesting moreinformation from a translation server over a slow network.

Block 110 performs CAT using the suggestion pool. Toward this end, theCAT system provides translation suggestions for each sentence in theinput document. The translator may accept the translation, at whichpoint a next sentence is considered translated. The user may also accepta partial translation, for example if the prefix of the sentence iscorrectly translated, but the remainder of the sentence is incorrect. Ifthe translator does not accept the translation, or accepts a partialsuggestion, the translator begins to enter an updated translation. TheCAT system may provide updated suggestions as the translator continuesto provide more information, which serves to reduce the number ofpossible translations and allows the CAT system to refine itssuggestions.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing. Computer program code for carrying out operations foraspects of the present invention may be written in any combination ofone or more programming languages, including an object orientedprogramming language such as Java, Python, C++ or the like andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks. The computer program instructions may also beloaded onto a computer, other programmable data processing apparatus, orother devices to cause a series of operational steps to be performed onthe computer, other programmable apparatus or other devices to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblocks may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

Reference in the specification to “one embodiment” or “an embodiment” ofthe present invention, as well as other variations thereof, means that aparticular feature, structure, characteristic, and so forth described inconnection with the embodiment is included in at least one embodiment ofthe present invention. Thus, the appearances of the phrase “in oneembodiment” or “in an embodiment”, as well any other variations,appearing in various places throughout the specification are notnecessarily all referring to the same embodiment.

It is to be appreciated that the use of any of the following “/”,“and/or”, and “at least one of”, for example, in the cases of “A/B”, “Aand/or B” and “at least one of A and B”, is intended to encompass theselection of the first listed option (A) only, or the selection of thesecond listed option (B) only, or the selection of both options (A andB). As a further example, in the cases of “A, B, and/or C” and “at leastone of A, B, and C”, such phrasing is intended to encompass theselection of the first listed option (A) only, or the selection of thesecond listed option (B) only, or the selection of the third listedoption (C) only, or the selection of the first and the second listedoptions (A and B) only, or the selection of the first and third listedoptions (A and C) only, or the selection of the second and third listedoptions (B and C) only, or the selection of all three options (A and Band C). This may be extended, as readily apparent by one of ordinaryskill in this and related arts, for as many items listed.

Referring now to FIG. 2, a method for providing and updating suggestionsin CAT is shown. Block 202 generates a suggestion pool as describedabove. The suggestion pool is based on a general translation model andone or more customized translation models. Block 203 determines whetherthere are untranslated sentences in the input document. If so, block 204generates a best sentence translation for a first untranslated sentencein the input document using the suggestion pool. This best sentence maybe one of several possible sentence translations and may be selectedaccording to any appropriate method. For example, each potentialtranslation may be assigned a confidence score that corresponds to alikelihood that the translation is correct. The suggestion that isdetermined to be the most likely translation is presented to thetranslator for acceptance.

At block 206, the translator has the option of accepting or rejectingthe suggestion. The user may make this choice using, e.g., a keyboardshortcut, to make the acceptance or rejection as efficient as possible.If the translator accepts the suggestion, block 207 selects the nextsentence in the input document and returns processing to block 203,which determines whether there are any remaining sentences. If thetranslator rejects the suggestion or accepts only part of thesuggestion, the translator may begin entering a translation at block208. If the translator accepted a partial suggestion, then thetranslator begins entering translated information at the end of theaccepted prefix.

As the user enters information, block 210 updates the suggestions. TheCAT system matches the prefix against the suggestion pool. If there arematches, the next few words after the matched prefix in candidatetranslations are suggested. When the system reads more input from theuser, the user's translation limits the number of possible suggestionsand may make a new suggestion the most likely translation for thesentence. Block 210 displays the new suggestion and allows the user toaccept the suggestion at block 206. The user may continue to enter thetranslation, which implicitly rejects the new suggestion. This continuesuntil the translator either completes the sentence translation manuallyor accepts a translation suggestion. Each sentence in the input documentis processed in this fashion until the entire document has beentranslated.

Once block 203 determines that no sentences remain, block 212 mayoptionally update the customized translation model(s) using additionalsentence pairs learned during translation. This update may includeupdating the entire model or may only be an update of the weights ofparameters in the model. Block 212 may perform this update at any timebut, because such an update can be time consuming and computationallyintensive, updating the model offline may be most efficient.Alternatively, incremental updates to the model may be performed onlinein the background. This allows the CAT system to adapt to particularvocabulary and usage found within the document.

Referring now to FIG. 3, a CAT system 300 is shown. The system includesa processor 302 and a memory 304. Training data stored in memory 304 isused by model update module to create and update one or more customizedtranslation models 308, to be stored in memory with a generaltranslation model 306. Pool update module 312 uses processor 302 togenerate a suggestion pool 310 for sentences in the input document usingthe general and customized translation models 306 and 308. Thetranslation module 316 uses the processor 302 to review suggestion pool310 and to provide translation suggestions for sentences in an inputdocument. The translation module 316 receives user inputs and reassessesthe suggestions in suggestion pool 310 adaptively, providing updatedsuggestions as the user's inputs foreclose translations options. A modelupdate module 314 uses processor 302 to update the customizedtranslation module 308 using the information received by the user'stranslations.

Although the diagram depicts a single system 300, it should be notedthat the functional modules shown need not all be implemented in asingle piece of hardware. For example, the customized translation modelmay be generated, stored, and updated at a server device and onlytransmitted to a translator's client device as needed.

Referring now to FIG. 4, additional detail on updating the suggestionpool in block 210 is provided. Block 402 creates a suggestion pool thatincludes, e.g., a pruned translation lattice that compactly represents aset of possible phrase translations of a source sentence and sends thatsentence to a translator. As the translator changes the translationprefix, block 404 builds a new suggestion pool. Block 406 adds any newcandidates to the translation lattice and prunes any candidates that areno longer viable. Because a translation lattice encodes the most likelytranslations, but does not necessarily include all possibletranslations, the lattice is updated to reflect changes to the mostlikely translations based on the inputs provided by the translator.

Block 406, in pruning the possible translations, makes a likelihooddetermination for each possible translation. A threshold is used todetermine whether a given possible translation will be placed in thesuggestion pool, such that translations with a likelihood over thethreshold are used in the pool and translations below the threshold arepruned from the pool. This likelihood can be generated by anyappropriate mechanism using, e.g., word commonality, document context,etc., to generate a score for each translation. Block 406 may also askthe server for additional candidates based on a user's prefix, addingthose additional candidates to the suggestion pool.

Referring now to FIG. 5, a client/server embodiment of the presentinvention is provided. A server 502 generates the pool and sends thatpool to a client 504 in block 402. The server 502 and client 504 eachhave a communication module 506 to facilitate communications. As notedabove, the suggestion pool may be a subset of all the possibletranslations. For example, if a given sentence has twenty possibletranslations, the suggestion pool may only include the best tentranslations. Alternatively, the suggestion pool may include thosetranslations that have a likelihood above a threshold.

As a translator accepts or rejects proposed translations, the client 504uses the suggestion pool to generate new proposed suggestions withoutneeding to ask the server 502. In particular, if the user accepts atranslation prefix, the client 504 refers to other potentialtranslations in the suggestion pool that share that prefix. The size ofthe suggestion pool represents a tradeoff between memory usage at theclient 504 and the latency of communications between the server 502 andthe client 504. A larger suggestion pool means that the client 504 willneed to ask the server for an updated pool less often, but beingprepared for unexpected translations comes at the cost of increasedmemory usage.

In this exemplary embodiment, the server 502 includes the training data305 and translation models 306/308, along with the model update module314 that uses information from the client 504 to provide furtherrefinements on the customized translation model 308. The server 502 usesthis information to generate and transmit a suggestion pool 310, whichis stored at the client 504 and which is used by translation module 316to aid a translator. The communication modules 506 may operate using anyappropriate medium, including the Internet, a local area network, awireless network, etc. In one example, the client 502 may be a desktopcomputer running the translation module 316 in a web browser.

Referring now to FIG. 6, an exemplary translation dialog is shown. Auser interface 600 displays a sentence to be translated 602 and the bestmachine-generated translation 604. An accept button 606 and a declinebutton 608 allow the user to accept or reject the proposed translation604. In the present case, the source phrase 602 has a misspelling (theGerman word “ist,” meaning “is,” is misspelled as the word “isst,”meaning, “eats”), causing the machine translation to generate an absurdproposed translation 604. The translation 604 is literally correct, butthe translation models 306/308 may not be able to detect the absurdityof the proposal. The translator may select the decline button 608, whichwould cause the dialog box 600 to display the next-best possibletranslation from the suggestion pool 310.

A human translator would naturally understand the error in the presentexample and attempt to correct the mistake. As such, the translatorcould decline the proposed translation 604 entirely. However, theproposed translation 604 does begin correctly, and the translator mayelect to use the correct portion in building an accurate translation.The translator therefore begins at a desired point in the proposedtranslation 604, causing dialog box 610 to update. Now a prefix 612exists that includes an accepted portion of the original proposedtranslation 604 (in this case, ‘“Where’) and the word “is” entered bythe user. The client 504 running the user interface 610 updates thesuggestion pool 310 and proposes a new best translation 604.

If the prefix 612 deviates from the possibilities present in thesuggestion pool 310, the client 504 sends a request to server 502 foradditional possible translations and rebuilds the suggestion pool 310.This may occur if the translator judges the translations in thesuggestion pool 310 are far from the mark, based on the context of theentire document, but may also occur if the translator simply wants to,for example, restructure the sentence. As noted above, such a request tothe server 502 will increase the latency of providing a new proposedtranslation 604.

The dialog box 610 graphically distinguishes between the translationprefix 612 and the proposed translation 604. In the present embodimentthis is accomplished by highlighting the proposed translation 604 andrendering the translation prefix 612 in plain text, but it should beunderstood that any appropriate distinction could be used. Based on thecontext of the text and the translator's facility with the two languagesin question, the translator determines that the new proposal 604accurately reflects the intended translation of the source sentence 602.As such, the translator now presses the accept button 606 and proceedsto the next sentence in the document. The translator need not use thebuttons 606/608 at all, and may instead use keyboard shortcuts or maysimply translate the entire sentence manually.

Having described preferred embodiments of a system and method forcustomizable and low-latency interactive computer-aided translation(which are intended to be illustrative and not limiting), it is notedthat modifications and variations can be made by persons skilled in theart in light of the above teachings. It is therefore to be understoodthat changes may be made in the particular embodiments disclosed whichare within the scope of the invention as outlined by the appendedclaims. Having thus described aspects of the invention, with the detailsand particularity required by the patent laws, what is claimed anddesired protected by Letters Patent is set forth in the appended claims.

What is claimed is:
 1. A method for computer-aided translation,comprising: receiving a document comprising one or more sentences to betranslated; generating a suggestion pool of possible translations foreach sentence in the document using a processor; providing a bestsuggestion from the suggestion pool to a user for a sentence beingtranslated; updating the suggestion pool based on the user's input of atranslation prefix; and providing an updated best suggestion from theupdated suggestion pool to the user for the sentence being translated.2. The method of claim 1, wherein generating the suggestion poolcomprises using general and customized translation models.
 3. The methodof claim 2, wherein the customized model is built using in-domain datafor a domain of the document.
 4. The method of claim 2, furthercomprising updating the customized translation model based on acompleted sentence translation.
 5. The method of claim 1, wherein thesuggestion pool is a word lattice that includes a proper subset ofpossible translations having a likelihood above a threshold.
 6. Themethod of claim 1, wherein updating the suggestion pool comprisesremoving suggestions that do not match the translation prefix.
 7. Themethod of claim 1, further comprising: transmitting the suggestion poolto a client device, wherein the suggestion pool is generated at a serverdevice; and transmitting a request for additional possible translationsbased on the translation prefix if the prefix deviates from possibletranslations in the suggestion pool.
 8. The method of claim 1, whereinthe translation prefix comprises translation information enteredmanually by the user.
 9. The method of claim 8, wherein the translationprefix comprises an accepted portion of the best suggestion.
 10. Themethod of claim 1, wherein the suggestion pool of possible translationsfor each sentence comprises a pruned translation lattice for eachsentence that compactly represents a set of possible phrase translationsof a sentence being translated.
 11. The method of claim 10, whereinupdating the suggestion pool comprises adding new likely translationsand pruning translations that are not viable.
 12. A method forcomputer-aided translation, comprising: receiving a document comprisingone or more sentences to be translated; generating a suggestion pool ofpossible translations for each sentence in the document at a serverdevice using a processor, based on general and customized translationmodels having in-domain translation data; transmitting the suggestionpool to a client device; providing a best suggestion from the suggestionpool to a user for a sentence being translated; transmitting a requestfor additional possible translations based on the translation prefix ifthe prefix deviates from possible translations in the suggestion pool;updating the suggestion pool based on the user's input of a translationprefix; and providing an updated best suggestion from the updatedsuggestion pool to the user for the sentence being translated.